home *** CD-ROM | disk | FTP | other *** search
- function getTimeFrame(age)
- {
- var _loc1_ = (65 - Number(age)) * 12;
- return _loc1_;
- }
- function getMortgagePayment(b, n, r)
- {
- var _loc2_ = b * (r * Math.pow(1 + r,n)) / (Math.pow(1 + r,n) - 1);
- return _loc2_;
- }
- function getMortgageBalance(m, d, n, r)
- {
- var _loc1_ = d * (Math.pow(1 + r,n) - Math.pow(1 + r,m)) / (Math.pow(1 + r,n) - 1);
- return _loc1_;
- }
- function payMortgage(b, r, p, t, m)
- {
- if(m > t)
- {
- m = t;
- }
- trace("m: " + m);
- k = 1;
- while(k <= m && b > 0)
- {
- var _loc6_ = 0;
- var _loc5_ = 0;
- var _loc4_ = 0;
- if(b < p - b * r)
- {
- _loc4_ = p - (p - b * r);
- }
- b -= p - b * r;
- if(b < 0)
- {
- b = 0;
- }
- trace("New Balance: " + k + " " + b);
- k++;
- }
- trace("Payment Balance: " + k + " " + _loc4_);
- arrResult = new Array(b,k,_loc5_,"0",_loc4_);
- return arrResult;
- }
- function getMonthlyExpenses(i, h, d, s)
- {
- trace("Income: " + i);
- trace("Housing: " + h);
- trace("Debt: " + d);
- trace("Savings: " + s);
- var _loc1_ = i - d - s - h;
- trace("Monthly Expenses: " + _loc1_);
- return _loc1_;
- }
- function getSavings(b, p, t)
- {
- trace("balance (b): " + b);
- trace("payment (p): " + p);
- trace("months (t): " + t);
- var _loc6_ = 0.12;
- var _loc7_ = 12;
- var _loc2_ = _loc6_ / _loc7_;
- g = 1;
- while(g <= t)
- {
- b *= 1 + _loc2_;
- b += p;
- g++;
- }
- var _loc5_ = Math.floor(b);
- trace("Savings: " + _loc5_);
- return _loc5_;
- }
- function addCommas(x)
- {
- var _loc4_ = "";
- var _loc5_ = ",";
- var _loc6_ = "";
- if(x.indexOf("-") >= 0)
- {
- x = x.substring(1,x.length);
- _loc6_ = "-";
- }
- j = 1;
- while(j <= Math.ceil(x.length / 3))
- {
- var _loc1_ = x.length - 3 * j;
- var _loc3_ = 3;
- if(_loc1_ < 0)
- {
- _loc3_ = x.length - (j - 1) * 3;
- _loc1_ = 0;
- }
- if(_loc1_ == 0)
- {
- _loc5_ = "";
- }
- _loc4_ = _loc5_ + x.substr(_loc1_,_loc3_) + _loc4_;
- j++;
- }
- _loc4_ = _loc6_ + _loc4_;
- return _loc4_;
- }
- function payDebt(b, p, r, n, t)
- {
- p = _global.DebtPayment + _global.MonthlySavings + _global.MonthlyExpensesContributed + _global.ExtraJob;
- while(b > 0 && m < _global.TimeFrame)
- {
- e = b * (1 + r / 12);
- if(e < p)
- {
- LeftoverDebtPayment = c - e;
- c = e;
- }
- b = e - c;
- _global.Debt = b;
- months += 1;
- trace(z + ": (months)" + months);
- trace(z + ": (c)" + c);
- trace(z + ": " + _global.Debt);
- z += 1;
- }
- }
- _global.TimeFrame = getTimeFrame(_global.Age);
- trace(_global.TimeFrame);
- i = _global.MonthlyIncome;
- h = 0;
- d = _global.DebtPayment;
- s = _global.MonthlySavings;
- if(_global.Housing == "rent")
- {
- if(isNaN(Number(_global.HousingPayment)) == 0)
- {
- h = Number(_global.HousingPayment);
- }
- }
- else if(_global.Housing == "own" && isNaN(Number(_global.MortgageQty)) == 0)
- {
- j = 1;
- while(j <= _global.MortgageQty)
- {
- b = Number(_global["MortgageAmount" + j]);
- n = 12 * Number(_global["MortgageTerm" + j]);
- r = Number(_global["MortgageRate" + j]) / 100 / 12;
- _global["MortgagePayment" + j] = getMortgagePayment(b,n,r);
- h += _global["MortgagePayment" + j];
- j++;
- }
- }
- _global.MonthlyExpenses = getMonthlyExpenses(i,h,d,s);
- trace("Mortgages: " + _global.MortgageQty);
- trace("Mortgage Payment 1: " + _global.MortgagePayment1);
- trace("Mortgage Payment 2: " + _global.MortgagePayment2);
- trace("YOUR PLAN |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
- if(_global.Housing == "own")
- {
- j = 1;
- while(j <= _global.MortgageQty)
- {
- m = 12 * (Number(_global["MortgageTerm" + j]) - Number(_global["MortgageTermRemaining" + j]));
- d = Number(_global["MortgageAmount" + j]);
- n = 12 * Number(_global["MortgageTerm" + j]);
- r = Number(_global["MortgageRate" + j]) / 100 / 12;
- t = _global.TimeFrame;
- var b = getMortgageBalance(m,d,n,r);
- trace("Balance: " + b);
- var p = _global["MortgagePayment" + j];
- trace("Payment: " + p);
- m = Number(_global["MortgageTermRemaining" + j]) * 12;
- _global["MortgageStatus" + j] = payMortgage(b,r,p,t,m);
- trace("Mortgage Balance: " + _global["MortgageStatus" + j][0]);
- j++;
- }
- }
- _global.MortgagePayoffOrder = new Array();
- if(_global.Housing == "own")
- {
- j = 1;
- while(j <= _global.MortgageQty)
- {
- if(_global["MortgageStatus" + j][0] == 0 && _global["MortgageStatus" + j][1] < _global.TimeFrame)
- {
- var g = 1;
- k = 1;
- while(k < j)
- {
- if(_global["MortgageStatus" + k][3] != 0)
- {
- if(_global["MortgageStatus" + k][1] > _global["MortgageStatus" + j][1])
- {
- g = _global["MortgageStatus" + k][3];
- _global["MortgageStatus" + k][3] += 1;
- }
- else
- {
- g = _global["MortgageStatus" + k][3] + 1;
- }
- }
- k++;
- }
- _global["MortgageStatus" + j][3] = g;
- trace("_global.MortgageStatus" + j + "[3] : " + _global["MortgageStatus" + j][3]);
- }
- j++;
- }
- j = 1;
- while(j <= _global.MortgageQty)
- {
- if(_global["MortgageStatus" + j][3] != 0)
- {
- var g = _global["MortgageStatus" + j][3];
- _global.MortgagePayoffOrder[g - 1] = j;
- trace("_global.MortgagePayoffOrder[(g - 1)] : " + _global.MortgagePayoffOrder[g - 1]);
- }
- j++;
- }
- }
- var b = _global.Savings;
- var p = _global.MonthlySavings;
- trace("_global.MortgagePayoffOrder.length: " + _global.MortgagePayoffOrder.length);
- if(_global.MortgagePayoffOrder.length > 0)
- {
- var t = _global["MortgageStatus" + _global.MortgagePayoffOrder[0]][1];
- }
- else
- {
- var t = _global.TimeFrame;
- }
- b = getSavings(b,p,t);
- j = 0;
- j = 0;
- while(j < _global.MortgagePayoffOrder.length)
- {
- p += _global["MortgagePayment" + _global.MortgagePayoffOrder[j]];
- if(j < _global.MortgagePayoffOrder.length - 1)
- {
- t = _global["MortgageStatus" + _global.MortgagePayoffOrder[j + 1]][1] - _global["MortgageStatus" + _global.MortgagePayoffOrder[j]][1];
- trace(_global["MortgageStatus" + _global.MortgagePayoffOrder[j + 1]][1] - _global["MortgageStatus" + _global.MortgagePayoffOrder[j]][1]);
- }
- else
- {
- t = _global.TimeFrame - _global["MortgageStatus" + _global.MortgagePayoffOrder[j]][1];
- trace("TimeFrame - " + _global["MortgageStatus" + _global.MortgagePayoffOrder[j]][1]);
- }
- b = getSavings(b,p,t);
- trace("Loop: " + j);
- j++;
- }
- trace(b);
- _global.MortgageDebt = 0;
- j = 1;
- while(j <= _global.MortgageQty)
- {
- if(_global["MortgageStatus" + j][0] != 0)
- {
- mm = Number(_global["MortgageTerm" + j]) * 12 - (Number(_global["MortgageTermRemaining" + j]) * 12 - _global.TimeFrame);
- md = Number(_global["MortgageAmount" + j]);
- mn = 12 * Number(_global["MortgageTerm" + j]);
- mr = Number(_global["MortgageRate" + j]) / 100 / 12;
- mt = _global.TimeFrame;
- var mb = _global["MortgageStatus" + j][0];
- trace("Balance: " + mb);
- var d = mb;
- var n = 1;
- var r = Number(_global["MortgageRate" + j]) / 100 / 12;
- var mp = getMortgagePayment(d,n,r);
- trace("Payment: " + mp);
- md = payMortgage(mb,mr,mp,mt,mm);
- _global.MortgageDebt += mp;
- trace("Mortgage Debt: " + _global.MortgageDebt);
- }
- j++;
- }
- _global.YourPlan = b - _global.Debt - _global.MortgageDebt;
- _global.YourPlan = addCommas(String(Math.round(_global.YourPlan)));
- trace("YOUR PLAN: " + _global.YourPlan);
- trace("DAVE\'S PLAN |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
- _global.MonthlyExpensesAdjusted = 0;
- _global.MonthlyExpensesContributed = 0;
- if(_global.MonthlyExpenses > 0)
- {
- _global.MonthlyExpensesAdjusted = _global.MonthlyExpenses - _global.MonthlyExpenses * 0.1;
- _global.MonthlyExpensesContributed = _global.MonthlyExpenses - _global.MonthlyExpensesAdjusted;
- }
- if(_global.MonthlyExpensesContributed < 0)
- {
- _global.MonthlyExpensesContributed = 0;
- }
- trace("MonthlyExpensesAdjusted: " + _global.MonthlyExpensesAdjusted);
- trace("MonthlyExpensesContributed: " + _global.MonthlyExpensesContributed);
- _global.ExtraJob = 750;
- var months = 0;
- _global.EmergencyFund = 0;
- if(_global.Debt > 0 && _global.MortgageQty > 0)
- {
- while(_global.EmergencyFund < 1000)
- {
- _global.EmergencyFund = _global.EmergencyFund + _global.MonthlyExpensesContributed + _global.ExtraJob + _global.MonthlySavings;
- months += 1;
- trace("BEF: " + _global.EmergencyFund);
- trace("month: " + months);
- }
- trace("Baby Emergency Fund: " + _global.EmergencyFund);
- trace("Consumer Debt: " + _global.Debt);
- z = 1;
- if(_global.EmergencyFund > 1000)
- {
- EFleftover = _global.EmergencyFund - 1000;
- _global.EmergencyFund = 1000;
- trace("EFleftover: " + EFleftover);
- p = _global.Debt;
- c = EFleftover + _global.DebtPayment;
- r = 0.15;
- b = p;
- b = b * (1 + r / 12) - c;
- _global.Debt = b;
- trace(z + ": (c)" + c);
- trace(z + ": " + _global.Debt);
- z += 1;
- }
- c = _global.DebtPayment + _global.MonthlySavings + _global.MonthlyExpensesContributed + _global.ExtraJob;
- while(b > 0 && m < _global.TimeFrame)
- {
- e = b * (1 + r / 12);
- if(e < c)
- {
- LeftoverDebtPayment = c - e;
- c = e;
- }
- b = e - c;
- _global.Debt = b;
- months += 1;
- trace(z + ": (months)" + months);
- trace(z + ": (c)" + c);
- trace(z + ": " + _global.Debt);
- z += 1;
- }
- if(months < _global.TimeFrame)
- {
- b = _global.EmergencyFund;
- p = c;
- t = 1;
- j = 0;
- trace("Emergency Fund: b:" + b + " p:" + p + " t:" + t);
- j = 1;
- while(_global.EmergencyFund < _global.MonthlyIncome * 3 && months + j < _global.TimeFrame)
- {
- _global.EmergencyFund += c;
- months += 1;
- trace("Month: " + months);
- trace("Emergency Fund: " + _global.EmergencyFund);
- trace("c: " + c);
- j++;
- }
- trace("Months:" + months);
- }
- b = _global.Savings;
- p = 0;
- t = months;
- _global.Savings = getSavings(b,p,t);
- if(_global.Housing == "own")
- {
- j = 1;
- while(j <= _global.MortgageQty)
- {
- m = Number(_global["MortgageTerm" + j]) * 12 - Number(_global["MortgageTermRemaining" + j]) * 12;
- d = Number(_global["MortgageAmount" + j]);
- n = Number(_global["MortgageTerm" + j]) * 12;
- r = Number(_global["MortgageRate" + j]) / 100 / 12;
- t = months;
- var b = getMortgageBalance(m,d,n,r);
- trace("Balance: " + b);
- var p = _global["MortgagePayment" + j];
- trace("Payment: " + p);
- m = Number(_global["MortgageTermRemaining" + j]) * 12;
- _global["MortgageStatus" + j] = payMortgage(b,r,p,t,m);
- trace("Mortgage Balance: " + _global["MortgageStatus" + j][0]);
- j++;
- }
- }
- if(_global.MonthlyIncome * 0.15 > _global.MonthlySavings)
- {
- _global.MonthlySavings = _global.MonthlyIncome * 0.15;
- }
- trace("Monthly Savings at 15%: " + _global.MonthlySavings);
- trace("C: " + c);
- if(c - _global.MonthlySavings > 0)
- {
- _global.MortgagePaymentExtra = c - _global.MonthlySavings;
- }
- else
- {
- _global.MortgagePaymentExtra = 0;
- }
- trace("Extra Mortgage Payment: " + _global.MortgagePaymentExtra);
- if(_global.Housing == "own")
- {
- j = 1;
- while(j <= _global.MortgageQty)
- {
- if(_global["MortgageStatus" + j][0] > 0)
- {
- m = Number(_global["MortgageTermRemaining" + j]) * 12 - months;
- d = _global["MortgageStatus" + j][0];
- n = Number(_global["MortgageTerm" + j]) * 12;
- r = Number(_global["MortgageRate" + j]) / 100 / 12;
- t = _global.TimeFrame - months;
- var b = d;
- trace("Balance: " + b);
- _global["MortgagePayment" + j] += _global.MortgagePaymentExtra / _global.MortgageQty;
- var p = _global["MortgagePayment" + j];
- trace("Payment: " + p);
- _global["MortgageStatus" + j] = payMortgage(b,r,p,t,m);
- trace("Mortgage Balance: " + _global["MortgageStatus" + j][0]);
- }
- j++;
- }
- }
- _global.MortgagePayoffOrder = new Array();
- if(_global.Housing == "own")
- {
- j = 1;
- while(j <= _global.MortgageQty)
- {
- if(_global["MortgageStatus" + j][0] == 0 && _global["MortgageStatus" + j][1] < _global.TimeFrame)
- {
- var g = 1;
- k = 1;
- while(k < j)
- {
- if(_global["MortgageStatus" + k][3] != 0)
- {
- if(_global["MortgageStatus" + k][1] > _global["MortgageStatus" + j][1])
- {
- g = _global["MortgageStatus" + k][3];
- _global["MortgageStatus" + k][3] += 1;
- }
- else
- {
- g = _global["MortgageStatus" + k][3] + 1;
- }
- }
- k++;
- }
- _global["MortgageStatus" + j][3] = g;
- trace("_global.MortgageStatus" + j + "[3] : " + _global["MortgageStatus" + j][3]);
- }
- j++;
- }
- j = 1;
- while(j <= _global.MortgageQty)
- {
- if(_global["MortgageStatus" + j][3] != 0)
- {
- var g = _global["MortgageStatus" + j][3];
- _global.MortgagePayoffOrder[g - 1] = j;
- trace("_global.MortgagePayoffOrder[(g - 1)] : " + _global.MortgagePayoffOrder[g - 1]);
- }
- j++;
- }
- }
- }
- var b = _global.Savings;
- var p = _global.MonthlySavings;
- if(_global.MortgagePayoffOrder.length > 0)
- {
- var t = _global["MortgageStatus" + _global.MortgagePayoffOrder[0]][1];
- }
- else
- {
- var t = _global.TimeFrame - months;
- }
- b = getSavings(b,p,t);
- j = 0;
- while(j < _global.MortgagePayoffOrder.length)
- {
- p += _global["MortgagePayment" + _global.MortgagePayoffOrder[j]];
- if(j < _global.MortgagePayoffOrder.length - 1)
- {
- t = _global["MortgageStatus" + _global.MortgagePayoffOrder[j + 1]][1] - _global["MortgageStatus" + _global.MortgagePayoffOrder[j]][1];
- }
- else
- {
- t = _global.TimeFrame - _global["MortgageStatus" + _global.MortgagePayoffOrder[j]][1];
- }
- b = getSavings(b,p,t);
- j++;
- }
- _global.MortgageDebt = 0;
- j = 1;
- while(j <= _global.MortgageQty)
- {
- if(_global["MortgageStatus" + j][0] != 0)
- {
- mm = Number(_global["MortgageTerm" + j]) * 12 - (Number(_global["MortgageTermRemaining" + j]) * 12 - _global.TimeFrame);
- md = Number(_global["MortgageAmount" + j]);
- mn = 12 * Number(_global["MortgageTerm" + j]);
- mr = Number(_global["MortgageRate" + j]) / 100 / 12;
- mt = _global.TimeFrame;
- var mb = _global["MortgageStatus" + j][0];
- trace("Balance: " + mb);
- d = mp;
- n = 1;
- r = Number(_global["MortgageRate" + j]) / 100 / 12;
- var mp = getMortgagePayment(d,n,r);
- trace("Payment: " + mp);
- md = payMortgage(mb,mr,mp,mt,mm);
- _global.MortgageDebt += mp;
- trace("Mortgage Debt: " + _global.MortgageDebt);
- }
- j++;
- }
- _global.DavesPlan = b - _global.Debt - _global.MortgageDebt + _global.EmergencyFund;
- trace("Savings + EmergencyFund: " + _global.DavesPlan);
- _global.DavesPlan = addCommas(String(Math.round(_global.DavesPlan)));
- trace("DAVE\'S PLAN: " + _global.DavesPlan);
- stop();
-